Computers have become highly integrated in the workforce, in the home, in mobile devices, and many other places. Computers can process massive amounts of information quickly and efficiently. Software applications designed to run on computer systems allow users to perform a wide variety of functions including business applications, schoolwork, entertainment and more. Software applications are often designed to perform specific tasks, such as word processor applications for drafting documents, or email programs for sending, receiving and organizing email.
Software applications are often updated over time. Each update typically receives a new version number. Each version has new features, bug fixes, or some combination thereof. In some cases, companies or other entities are hesitant to install new versions of software, as the new version may break functionality that was working in the previous version. As a result, companies will often perform extensive tests on new versions of software applications before implementing them in their respective systems. These risk evaluations involve running hundreds or thousands of unit tests to ensure that each feature still performs as it should, and that new features don't break old features.
Installation, operation and performance qualification (IOPQ) are thus performed to validate each software version before deployment. Such tests can take hours, days or even weeks. Due to the extensive nature of these tests, many companies wait multiple versions before changing. Then, when the software finally is upgraded, large changes exist between the new version and the older version. These large changes (e.g. from version 2 to version 5) may then include an even larger number of new features and bug fixes. This, in turn, may result in even more unit tests and more chances that something will fail in the newer version.